package com.huibur.devicecheck.service;

import com.huibur.devicecheck.model.param.LoginParam;
import com.huibur.devicecheck.model.param.UserParam;
import com.huibur.devicecheck.model.query.PwdQuery;
import com.huibur.devicecheck.model.query.UserQuery;
import com.huibur.devicecheck.model.vo.UserVO;
import com.huibur.devicecheck.request.ObjRes;
import com.huibur.devicecheck.request.PageRes;

import java.util.List;

/*******************************************************
* Title: IUserService.java
* Description:
* @author baiqingshuo
* @date 2021/9/24
* @version 1.0
*******************************************************/
public interface IUserService {
    /**
     * 登录
     * @param loginParam
     * @return
     */
    ObjRes<UserVO> login(LoginParam loginParam);

    /**
     * 新增用户
     * @param userParam
     * @return
     */
    ObjRes<Void> insert(UserParam userParam);

    /**
     * 删除用户
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 编辑用户
     * @param adminId
     * @param userParam
     * @return
     */
    ObjRes<Void> updateUser(Long adminId, UserParam userParam);

    /**
     * 用户列表(查询并分页)
     * @param userQuery
     * @return
     */
    PageRes<UserVO> selectListUser(UserQuery userQuery);

    /**
     * 获取用户详情
     * @param id
     * @return
     */
    UserVO selectUserById(Long id);

    /**
     * 重置密码
     * @param id
     * @return
     */
    Boolean resetPwd(Long id);

    /**
     * 修改密码
     * @param pwdQuery
     * @return
     */
    ObjRes<Void> updatePwd(PwdQuery pwdQuery);

    /**
     * 分配时只获取巡检员
     * @return
     */
    List<UserVO> selectCheckRole();
}
